package org.KeyCrafter.ds.dict;

/**
 * 定义对字典操作的函数规范(指针)
 * 说明：
 *  由于在不同应用中，字典中的键值对形态都可能不同，
 *  而dictType类为实现各种形态的字典而抽象出来的一系列函数。
 */
public interface DictType {
    // 获取hashcode
    int hashFunction(Object key);
    // 复制键的函数
    default Object keyDup(Object privdate, Object key) {
        return key;
    }
    // 复制值的函数
    default Object valDup(Object privdate, Object obj) {
        return obj;
    }
    // 对比键的函数
    default boolean keyCompare(Object privdate, Object key1, Object key2) {
        return key1.equals(key2);
    }
    // 销毁键的函数
    default void keyDestructor(Object privdate, Object key) {
    }
    // 销毁值的函数
    default void valDestructor(Object privdate, Object val) {

    }
}
